/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.ik.RestauranteBar.SMO.Reportes;

import java.io.FileNotFoundException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformer.XLSTransformer;
import org.ik.RestauranteBar.SMO.Encapsulados.DetallesPedidos;
import org.ik.RestauranteBar.SMO.Encapsulados.Pedidos;
import org.ik.RestauranteBar.SMO.Encapsulados.Reportes.DetallesPedidosReporte;
import org.ik.RestauranteBar.SMO.Encapsulados.Reportes.PedidosReporte;
import org.ik.RestauranteBar.SMO.Manejadores.ManejadorPedidos;

/**
 *
 * @author ACAP1343
 */
public class Reporte_Ventas_Detallado {

    SimpleDateFormat spf = new SimpleDateFormat("yyyy-MM-dd");

    public Reporte_Ventas_Detallado(String path) throws ParsePropertyException, FileNotFoundException {

        try {

            List<Pedidos> pedidos = ManejadorPedidos.getInstance().getPedidosFecha(new Date());
            List<PedidosReporte> reporte = new ArrayList<PedidosReporte>();
            
            for(Pedidos p:pedidos){
            
                PedidosReporte pr = new PedidosReporte();
                
                pr.setNopedido(p.getIdpedido());
                pr.setTelefono(p.getClientesTelefono().getTelefono());
                pr.setTotalPagado(p.getTotalPagado());
                pr.setTotalPedido(p.getTotalPedido());
                pr.setDireccion(p.getDireccionesClientesTelefono());
                pr.setComentario(p.getComentario());
                pr.setEstado(p.getEstadosPedidoid().getDescripcion());
                pr.setMesa(p.getMesa());
                pr.setUsuario(p.getUsuariosUsuario().getUsuario());
                
                List<DetallesPedidosReporte> listaDetalles = new ArrayList<DetallesPedidosReporte>();
                
                for(DetallesPedidos det:p.getDetallesPedidosList()){
                DetallesPedidosReporte drep = new DetallesPedidosReporte();
                
                drep.setNoDetalle(det.getDetallesPedidosPK().getIddetalle());
                drep.setCantidad(det.getCantidad());
                drep.setImpuestos(det.getImpuestos());
                drep.setPrecio(det.getPrecio());
                drep.setProducto(det.getProductosidproducto().getNombre()); 
                drep.setTotal(det.getTotaldetalle());
                
                listaDetalles.add(drep);
                 
                }
                
                pr.setDetalles(listaDetalles);
                
                reporte.add(pr);
            
            }
            
            
            HashMap maps = new HashMap();
            maps.put("fecha", spf.format(new Date()));
            maps.put("pedido", reporte);

            XLSTransformer transformer = new XLSTransformer();



            URL template = getClass().getResource("Plantillas/template_ventas_detallada.xls");
            String ruta = template.getPath();
            ruta = ruta.replaceAll("%20", " ");
            ruta = ruta.replaceAll("%c3%b3", "ó");

            transformer.transformXLS(ruta, maps, path + "\\Reporte_Ventas_Detallado " + spf.format(new Date()) + ".xls");
        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }
}
